package net.tksl.crm.dao.bd;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
import javax.persistence.Table;

@Entity
@Table(name = "cuentas")
public class CuentaBD implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue
	@Column(name="id")
	private Integer idCuenta;
	
	private String nombreCuenta;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="codTipoCuenta")
	private DetalleCompendioBD tipoCuenta;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="codPais")
	private PaisBD pais;
	
	@ManyToOne(fetch=FetchType.LAZY)
	@JoinColumn(name="codCiudad")
	private CiudadBD ciudad;
	
	private String direccion;
	private String email;
	private String telefono;
	private String fax;
	
	@OneToMany(mappedBy = "cuenta",fetch=FetchType.LAZY,cascade = CascadeType.ALL)
	@OrderBy("id asc")
	private List<CuentaContactoBD> lstCuentaContactos;
	
	@OneToMany(mappedBy = "cuenta",fetch=FetchType.LAZY,cascade = CascadeType.ALL)
	@OrderBy("id asc")
	private List<HostingBD> lstHosting;
	
	public CuentaBD(){
		lstCuentaContactos = new ArrayList<CuentaContactoBD>();
		lstHosting = new ArrayList<HostingBD>();
	}
	
	public Integer getIdCuenta() {
		return idCuenta;
	}
	public void setIdCuenta(Integer idCuenta) {
		this.idCuenta = idCuenta;
	}
	public String getNombreCuenta() {
		return nombreCuenta;
	}
	public void setNombreCuenta(String nombreCuenta) {
		this.nombreCuenta = nombreCuenta;
	}
	public DetalleCompendioBD getTipoCuenta() {
		return tipoCuenta;
	}
	public void setTipoCuenta(DetalleCompendioBD tipoCuenta) {
		this.tipoCuenta = tipoCuenta;
	}
	public PaisBD getPais() {
		return pais;
	}
	public void setPais(PaisBD pais) {
		this.pais = pais;
	}
	public CiudadBD getCiudad() {
		return ciudad;
	}
	public void setCiudad(CiudadBD ciudad) {
		this.ciudad = ciudad;
	}
	public String getDireccion() {
		return direccion;
	}
	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getFax() {
		return fax;
	}
	public void setFax(String fax) {
		this.fax = fax;
	}
	public List<CuentaContactoBD> getLstCuentaContactos() {
		return lstCuentaContactos;
	}
	public void setLstCuentaContactos(List<CuentaContactoBD> lstCuentaContactos) {
		this.lstCuentaContactos = lstCuentaContactos;
	}
	public List<HostingBD> getLstHosting() {
		return lstHosting;
	}
	public void setLstHosting(List<HostingBD> lstHosting) {
		this.lstHosting = lstHosting;
	}
}